Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

186
Visualizações
Js: convertir el archivo en módulo da el error "[función] se declara pero su valor nunca se lee"

Hola disculpa si es una pregunta tonta pero no encuentro la respuesta por ningún lado.

Tengo un archivo js en el que dibujo en lienzos y acabo de eliminar una función porque me gustaría usarla en otro archivo js que tengo. Luego importé la función getPosition en el archivo drawBalls.js de la siguiente manera:

 import {getPosition} from "../Useful_Scripts/divPosition.js";

Y eso parece funcionar bien (ya que no me da errores). Sin embargo, justo debajo de eso, tengo una función dibujar que comienza así:

 function draw(canvas){ const maxRadius = 10; const minRadius = 5; etc;

Lo cual ya no funciona dado que se declara el error 'dibujar' pero su valor nunca se lee.'. Sin embargo, funciona si elimino el código de importación y pego la función getPosition en drawBalls.js y elimino type="module" de la etiqueta del script.

Tengo esto en mi archivo html donde trato de dibujar en mi lienzo:

 <script type="module" src="../Scripts/Project_1/drawBalls.js"></script> <script> window.addEventListener('load', (event) => { draw(canvas1); }); </script>

¿Puede alguien explicar por qué ya no funciona tan pronto como el archivo se convierte en un módulo?

Actualizar He cambiado mi archivo html a

 <script type="module" > import {draw} from "../Scripts/Project_1/drawBalls.js" window.addEventListener('load', (event) => { draw(canvas1); });

¡Esto funciona!

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

El ámbito predeterminado de un módulo es ese módulo y no el ámbito global.

El método de draw solo existe dentro de ese módulo.

O:

  • Coloque el código addEventListener dentro drawBalls.js
  • export la función draw y luego import en su otra secuencia de comandos en lugar de cargar drawBall.js con un elemento <script> .

También puede asignar explícitamente draw para que sea una propiedad de window , pero eso es un truco sucio y no lo recomiendo.

about 4 years ago · Juan Pablo Isaza Relatório

0

Incluye su drawBalls.js como un módulo, pero no exporta la función de dibujo de su módulo – derpirscher

Está utilizando el script como un módulo. Suponga que está creando un paquete NPMjs y crea index.js. ¿Cómo necesitarías ese módulo y lo usarías?

Antes de requerir tu paquete, en index.js deberás exportarlo para importarlo/incluirlo.

Es una sintaxis muy básica con module.exports :

DibujarBolas.js
 module.exports = draw;

EDITAR: El código anterior es para módulos CommonJS. Use export en su lugar (al igual que import ):

 export draw;
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda